#ifndef TIMEWIDGET_H
#define TIMEWIDGET_H

#include <QWidget>
#include <QMediaPlayer>
#include "TimeEntity.h"

namespace Ui {
class TimeWidget;
}

class TimeWidget : public QWidget
{
    Q_OBJECT

public:
    explicit TimeWidget(QWidget *parent = nullptr);
    ~TimeWidget();
    void init(TimeEntity timeData);
    void initTimes();
    void paintEvent(QPaintEvent *);
    TimeEntity timeData;

private slots:
    void on_btnDel_clicked();
    void on_timer_timeout () ; //倒计时结束触发函数
    void on_btnRS_clicked();
    void on_btnReset_clicked();

    void on_btnEdit_clicked();

private:
    void changeBtnEditIcon(bool flag);
    void changeBtnRSIcon();
    void repeatTime();
    void timeOver();
    void timeToStr();
//    void drawTimeProgress();//repaint();
    Ui::TimeWidget *ui;
    QTimer *timer;//定时器
//    bool isRun = false;//开始按钮状态：开始、暂停 timer->isActive()
    bool isRunning = false;//是否正在倒计时
    int hour,minute,second;//当前剩余时间：时、分、秒
    int totalSecond;//总时长，单位：秒
    long totalMillisecond = 100;//总时长，单位：毫秒
    long timeStart = 0;//开始倒计时时的毫秒数，每次暂停再开始时会改变，初始值为0
    long timeSurplus;//剩余时长的毫秒数
    long timePauseStart = 0;//暂停时的时间戳
    double startAngleParam = 450*16;//背景圆弧修正参数
    double startAngle = 0;//背景圆弧起始弧度
    double timeDown360 = 360*16;//背景圆弧总弧度数，用于直观显示剩余时间
    double timeDownLength = 360*16;//背景圆弧弧度，用于直观显示剩余时间
    double step = 2*16;//背景圆弧每次递减的弧度

    int is = 1000,im = 60 * is,ih = 60 * im;
    long tm;
    double tmpArc;

    QMediaPlayer *player;

};

#endif // TIMEWIDGET_H
